{
 "cells": [
  {
   "cell_type": "raw",
   "metadata": {
    "raw_mimetype": "text/restructuredtext"
   },
   "source": [
    ".. _nb_algorithms:"
   ]
  },
  {
   "cell_type": "raw",
   "metadata": {
    "raw_mimetype": "text/restructuredtext"
   },
   "source": [
    ".. toctree::\n",
    "   :hidden:\n",
    "   :maxdepth: 1\n",
    "\n",
    "   differential_evolution\n",
    "   genetic_algorithm\n",
    "   nelder_mead\n",
    "   pattern_search\n",
    "   cmaes\n",
    "   nsga2\n",
    "   rnsga2\n",
    "   nsga3\n",
    "   unsga3\n",
    "   rnsga3\n",
    "   moead\n",
    "   ctaea\n",
    "   brkga\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Algorithms\n",
    "\n",
    "In our framework different algorithms can be used. Even though compared to other frameworks the number of algorithms might seem to be small, but they are highly customizable and can be easily extended."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "|Name|Class|Convenience|\n",
    "|---|---|---|\n",
    "|[Differential Evolution](differential_evolution.ipynb)|\"DE\"|\"de\"\n",
    "|[Genetic Algorithm](genetic_algorithm.ipynb)|\"GA\"|\"ga\"\n",
    "|[BRKGA](brkga.ipynb)|\"BRKGA\"|\"brkga\"\n",
    "|[Nelder Mead](nelder_mead.ipynb)|\"NelderMead\"|\"nelder-mead\"\n",
    "|[Pattern Search](pattern_search.ipynb)|\"PatternSearch\"|\"pattern-search\"\n",
    "|[CMAES](cmaes.ipynb)|\"CMAES\"|\"cmaes\"\n",
    "|[NSGA-II](nsga2.ipynb)|\"NSGA2\"|\"nsga2\"\n",
    "|[RNSGA-II](rnsga2.ipynb)|\"RNSGA2\"|\"rnsga2\"\n",
    "|[NSGA-III](nsga3.ipynb)|\"NSGA3\"|\"nsga3\"\n",
    "|[UNSGA-III](unsga3.ipynb)|\"UNSGA3\"|\"unsga3\"\n",
    "|[RNSGA-III](rnsga3.ipynb)|\"RNSGA3\"|\"rnsga3\"\n",
    "|[MOEA/D](moead.ipynb)|\"MOEAD\"|\"moead\"\n",
    "|[C-TAEA](ctaea.ipynb)|\"CTAEA\"|\"ctaea\"\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Each of them is implemented in a class which can be used directly and the constructor takes parameter of the algorithm."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from pymoo.algorithms.nsga2 import NSGA2\n",
    "algorithm = NSGA2()\n",
    "\n",
    "from pymoo.factory import get_algorithm\n",
    "algorithm = get_algorithm(\"nsga2\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For the documentation of each algorithms, we refer to the individual pages."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  },
  "pycharm": {
   "stem_cell": {
    "cell_type": "raw",
    "source": [],
    "metadata": {
     "collapsed": false
    }
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}